package com.ruoyi.meterManager.mapper;


import com.ruoyi.meterManager.domain.MeterPicture;
import com.ruoyi.meterManager.domain.Meterread;
import com.ruoyi.meterManager.domain.requestDto.AlterBIRequestDto;
import com.ruoyi.meterManager.domain.requestDto.BaseQueryDto;
import com.ruoyi.meterManager.domain.requestDto.UpdateMrEntity;
import com.ruoyi.meterManager.domain.responseDto.MeterCbHis;
import com.ruoyi.meterManager.domain.responseDto.MeterCursor;
import com.ruoyi.meterManager.domain.responseDto.MeterPayHis;
import org.apache.ibatis.annotations.Param;

import java.util.List;
import java.util.Map;

/**
 * 抄表库 数据层
 * 
 * @author chenhenan
 */
public interface MeterreadMapper {

    /**
     * 查询表工负责所有水表户
     * @param baseQueryDto
     * @return
     */
    List<Map> selectMeterInfo(BaseQueryDto baseQueryDto);

    /**
     * 查询表工负责所有水表户数量
     * @param baseQueryDto
     * @return
     */
    int selectMeterInfoCounts(BaseQueryDto baseQueryDto);

    /**
     * 查询表计划
     * @param baseQueryDto
     * @return
     */
    List<Map> selectBaseMeterReadInfo(BaseQueryDto baseQueryDto);

    /**
     * 查询表工负责所有水表户数量
     * @param baseQueryDto
     * @return
     */
    int selectBaseMeterReadInfoCounts(BaseQueryDto baseQueryDto);


    /**
     * 查询表计划id
     * @param baseQueryDto
     * @return
     */
    List<Map> selectMeterId(BaseQueryDto baseQueryDto);

    /**
     * 查询所有表册
     * @param baseQueryDto
     * @return
     */
    List<String> selectBF(BaseQueryDto baseQueryDto);

    /**
     * 查询表计划表册
     * @param baseQueryDto
     * @return
     */
    List<String> selectMrBF(BaseQueryDto baseQueryDto);

    /**
     * 根据水表编号查询详情
     * @param
     */
    List<MeterCursor> selectCursor(String P_BFRPER);

    /**
     * 根据水表编号查询详情(单个)
     * @param map
     */
    MeterCursor selectDetailByMrId(Map map);


    /**
     * 更新表指针
     * @param updateMrEntity
     * @return
     */
    String updateMeter(UpdateMrEntity updateMrEntity);

    /**
     * 修改用户信息
     * @param alterBIRequestDto
     * @return
     */
    String alterBaseInfo(AlterBIRequestDto alterBIRequestDto);

    /**
     * 查询一户多表 多表信息
     * @param miid
     * @return
     */
    List<Map> selectHSChild(String miid);

    /**
     * 查询总分表子表基础信息
     * @param mipriid
     * @return
     */
    List<Map> selectZFChild(String mipriid);

    /**
     * 查询抄表历史记录
     * @param map
     * @return
     */
    List<MeterCbHis> selectCbHistory(Map map);

    /**
     * 查询缴费历史记录
     * @param map
     * @return
     */
    List<MeterPayHis> selectPayHistory(Map map);

    /**
     * 退审
     * @param map
     */
    void cancelReview(Map map);

    /**
     * 查询抄见标志
     * @param mrcid
     * @return
     */
    String selectMrreadok(String mrcid);


    /**
     * 查询状态为未抄的分表
     * @param mid
     */
    int getFenStatus(String mid);

    /**
     * 获取本表工所属分公司的强制传照片月份
     * @param oaid
     * @return
     */
    String getPictureMonth(String oaid);

    /**
     * 获取本表工所属分公司的强制传照片月份
     * @param oaid
     * @return
     */
    int getLoginServerPort(String oaid);

    /**
     * 查询往期财务月份
     * @param cid
     * @return
     */
    String getLastcwmonth(String cid);

    /**
     * 获取总表下分表的水量总和
     * @param mipid
     * @return
     */
    int getfbsum(String mipid);

    /**
     * 照片水印信息
     * @param miid
     * @return
     */
    Map getImgPrintInfo(String miid);


    /**
     * 获取本期水量
     * @param miid
     * @return
     */
    Integer getMrsl(String miid);

    /**
     * 查询所属分表的水量总和
     * @param miid
     * @return
     */
    Integer getFenMrsl(String miid);


    String getUpdateInfo(String version);


    /**
     * 获取分公司电话号码
     * @param login_name
     * @return
     */
    String getPhoneNum(String login_name);


    int updateMeterread(Meterread meterread);

    /** 查询相邻的表计划详情 */
    Map getOtherMeter(BaseQueryDto baseQueryDto);

    /** 年阶梯累计水量 */
    int getYearStepSL(String micode);

    void test123(UpdateMrEntity updateMrEntity);
    String test234(@Param("aa") String aa);

}
